A complex software application can include multiple processes. For example, a master program can launch various component programs, monitor the component programs, and restart the component programs. Each of the component programs can also launch various sub-processes. The component programs and sub-processes can run on separate computers. The component programs and processes can have inter-dependency. In a conventional process management system, an operating system or a process management tool tracks the component programs and their processes. Existing operating systems or process management tools can determine a parent-child relationship between processes when the parent process spawns the child process (e.g., when the processes are “intrinsic” to each other). Processes that do not spawn one another (e.g., when the processes are “extrinsic” to each other) but are inter-dependent and run on separate computers can be managed manually.